/*
 * Project: Sudoku Explainer
 * Copyright (C) 2006-2007 Nicolas Juillerat
 * 
 * Project: Sudoku Hint Engine for Android
 * Copyright (C) 2010-2013 Emanuel Moecklin
 * 
 * Available under the terms of the Lesser General Public License (LGPL)
 */
package com.onegravity.sudoku.solver.core;

import java.util.BitSet;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;

import com.onegravity.sudoku.solver.HintType;
import com.onegravity.sudoku.solver.data.Cell;
import com.onegravity.sudoku.solver.data.Grid;
import com.onegravity.sudoku.solver.data.ImmutableCell;
import com.onegravity.sudoku.solver.util.Link;

/**
 * A hint that is not really a hint for solving a sudoku, but rather
 * to give an information on the sudoku, such as the fact that the sudoku
 * is not valid.
 */
public abstract class WarningHint extends IndirectHint {

	private static final long serialVersionUID = -3087792187595537516L;

	protected Grid grid;
	
	public WarningHint(Grid grid) {
        super(new HashMap<Cell,BitSet>());
        this.grid = grid;
    }

    @Override
    public Grid apply() {
    	return grid;
    }

    @Override
    public Collection<Link> getLinks(HintType type, int viewNum) {
        return null;
    }

    public Collection<ImmutableCell> getRemovedDigits(HintType type) {
        return Collections.emptyList();
    }

    public String getHintHtml(HintType type) {
    	return null;
    }
    
    @Override
    public boolean isWorth() {
        return true;
    }

}
